www.gusucode.com > WSTMall PHP网店系统 v1.6.0PHP源码程序 > WSTMall PHP网店系统 v1.6.0/wstmall_v1.6.0_160506/wstmall_v1.6.0_160506/Upgrade/Upgrade/Apps/Admin/Model/CronJobsModel.class.php
<?php namespace Admin\Model; /** * ============================================================================ * WSTMall开源商城 * 官网地址:http://www.wstmall.com * 联系QQ:707563272 * ============================================================================ * 定时任务服务类 */ class CronJobsModel extends BaseModel { /** * 自动收货 */ public function autoReceivie(){ $m = M('orders'); $autoReceiveDays = (int)$GLOBALS['CONFIG']['autoReceiveDays']; $autoReceiveDays = ($autoReceiveDays>0)?$autoReceiveDays:10;//避免有些客户没有设置值 $lastDay = date("Y-m-d 00:00:00",strtotime("-".$autoReceiveDays." days")); $rs = $m->where('deliveryTime<"'.$lastDay.'" and orderStatus=3 and orderFlag=1')->getField("orderId,orderNo,userId,shopId,orderScore,useScore,poundageRate,poundageMoney,scoreMoney"); if(!empty($rs)){ $mlogo = M('log_orders'); $msm = M('log_sys_moneys'); $mse = M('user_score'); foreach ($rs as $key => $v){ //结束订单状态 $data = array(); $data['receiveTime'] = date('Y-m-d 00:00:00'); $data['orderStatus'] = 4; $rsStatus = $m->where('orderId='.$v['orderId']." and orderStatus=3 and orderFlag=1")->save($data); if(false !== $rsStatus){ //修改商品销量 $sql = "UPDATE __PREFIX__goods g, __PREFIX__order_goods og, __PREFIX__orders o SET g.saleCount=g.saleCount+og.goodsNums WHERE g.goodsId= og.goodsId AND og.orderId = o.orderId AND o.orderId=".$v['orderId']." AND o.userId=".$v['userId']; $this->execute($sql); //增加积分 $sql = "UPDATE __PREFIX__users set userScore=userScore+".$v["orderScore"].",userTotalScore=userTotalScore+".$v["orderScore"]." WHERE userId=".$v['userId']; $this->execute($sql); //插入日志 $data = array(); $data["orderId"] = $v['orderId']; $data["logContent"] = "系统自动确认收货"; $data["logUserId"] = $v['userId']; $data["logType"] = 0; $data["logTime"] = date('Y-m-d H:i:s'); $mlogo->add($data); //修改积分 if((int)$GLOBALS['CONFIG']['isOrderScore']==1){ $sql = "UPDATE __PREFIX__users set userScore=userScore+".$v["orderScore"].",userTotalScore=userTotalScore+".$v["orderScore"]." WHERE userId=".$v['userId']; $this->execute($sql); $data = array(); $data["userId"] = $v['userId']; $data["score"] = $v["orderScore"]; $data["dataSrc"] = 1; $data["dataId"] = $v["orderId"]; $data["dataRemarks"] = "交易获得"; $data["scoreType"] = 1; $data["createTime"] = date('Y-m-d H:i:s'); $mse->add($data); } //平台积分支付支出 if($v["scoreMoney"]>0){ $data = array(); $data["targetType"] = 0; $data["targetId"] = $v['userId']; $data["dataSrc"] = 2; $data["dataId"] = $v['orderId']; $data["moneyRemark"] = "订单【".$v["orderNo"]."】支付 ".$v["useScore"]." 个积分,支出 ¥".$v["scoreMoney"]; $data["moneyType"] = 2; $data["money"] = $rsv["scoreMoney"]; $data["createTime"] = date('Y-m-d H:i:s'); $data["dataFlag"] = 1; $msm->add($data); } //平台收取订单佣金 if($v["poundageMoney"]>0){ $data = array(); $data["targetType"] = 1; $data["targetId"] = $v["shopId"]; $data["dataSrc"] = 1; $data["dataId"] = $v['orderId']; $data["moneyRemark"] = "收取订单【".$v["orderNo"]."】".$v["poundageRate"]."%的佣金 ¥".$v["poundageMoney"]; $data["moneyType"] = 1; $data["money"] = $v["poundageMoney"]; $data["createTime"] = date('Y-m-d H:i:s'); $data["dataFlag"] = 1; $msm->add($data); } } } } } /** * 自动好评 */ public function autoGoodAppraise(){ $m = M('orders'); $autoAppraiseDays = (int)$GLOBALS['CONFIG']['autoAppraiseDays']; $autoAppraiseDays = ($autoAppraiseDays>0)?$autoAppraiseDays:7;//避免有些客户没有设置值 $lastDay = date("Y-m-d 00:00:00",strtotime("-".$autoAppraiseDays." days")); $rs = $m->where('receiveTime<"'.$lastDay.'" and orderStatus=4 and orderFlag=1')->getField("orderId,userId,orderScore,shopId"); if(!empty($rs)){ $mog = M('order_goods'); $mga = M('goods_appraises'); $gm = M('goods_scores'); $ms = M('user_score'); foreach ($rs as $key => $v){ //标记订单已评价 $sql ="update __PREFIX__orders set isAppraises=1 where orderId=".$v['orderId']; $this->execute($sql); //获取该订单下的商品 $ogRs = $mog->where('orderId='.$v['orderId'])->select(); foreach ($ogRs as $vg){ //自动评价 $data = array(); $data["goodsId"] = $vg['goodsId']; $data["shopId"] = $v['shopId']; $data["userId"] = $v['userId']; $data["goodsScore"] = 5; $data["timeScore"] = 5; $data["serviceScore"] = 5; $data["content"] = "系统自动好评"; $data['goodsAttrId'] = $vg['goodsAttrId']; $data["isShow"] = 1; $data["createTime"] = date('Y-m-d H:i:s'); $data["orderId"] = $v['orderId']; $mga->add($data); //增加商品评分 $sql ="SELECT * FROM __PREFIX__goods_scores WHERE goodsId=".$vg['goodsId']; $goodsScores = $this->queryRow($sql); if(empty($goodsScores)){ $data = array(); $data["goodsId"] = $vg['goodsId']; $data["shopId"] = $v['shopId']; $data["goodsScore"] = 5; $data["goodsUsers"] = 1; $data["timeScore"] = 5; $data["timeUsers"] = 1; $data["serviceScore"] = 5; $data["serviceUsers"] = 1; $data["totalScore"] = 15; $data["totalUsers"] = 1; $gm->add($data); }else{ $sql = "UPDATE __PREFIX__goods_scores set totalUsers = totalUsers +1 , totalScore = totalScore + 15 ,goodsUsers = goodsUsers +1 , goodsScore = goodsScore +5 ,timeUsers = timeUsers +1 , timeScore = timeScore +5 ,serviceUsers = serviceUsers +1 , serviceScore = serviceScore +5 WHERE goodsId = ".$vg['goodsId']; $this->execute($sql); } //增加店铺评分 $sql = "UPDATE __PREFIX__shop_scores set totalUsers = totalUsers +1 , totalScore = totalScore + 15 ,goodsUsers = goodsUsers +1 , goodsScore = goodsScore +5,timeUsers = timeUsers +1 , timeScore = timeScore +5 ,serviceUsers = serviceUsers +1 , serviceScore = serviceScore +5 WHERE shopId = ".$v['shopId']; $this->execute($sql); //如果有评价积分的话设置评价积分 if((int)$GLOBALS['CONFIG']['isAppraisesScore']==1){ $appraisesScore = (int)$GLOBALS['CONFIG']['appraisesScore']; $sql = "UPDATE __PREFIX__users set userScore=userScore+".$appraisesScore.",userTotalScore=userTotalScore+".$appraisesScore." WHERE userId=".$v['userId']; $this->execute($sql); //增加积分记录 $data = array(); $data["userId"] = $v['userId']; $data["score"] = $appraisesScore; $data["dataSrc"] = 2; $data["dataId"] = $v['orderId']; $data["dataRemarks"] = "订单评价获得"; $data["scoreType"] = 1; $data["createTime"] = date('Y-m-d H:i:s'); $ms->add($data); } } } } } /** * 自动结算 */ public function autoSettlement(){ //获取上一月没有计结算的订单 $lastMonth = WSTMonth(-1); $sql ="select distinct shopId from __PREFIX__orders where left(receiveTime,7)='".$lastMonth."' and orderStatus=4 and orderFlag=1 and o.payType=1 and "; $rs = $this->query($sql); if(!empty($rs)){ $m = M('order_settlements'); foreach ($rs as $v){ //获取商家结算账户 $sql = "select bankName,bankNo,bankUserName from __PREFIX__shops s left join __PREFIX__banks b on b.bankId=s.bankId where s.shopId=".$v['shopId']; $accRs = $this->queryRow($sql); if(empty($accRs))continue; //按商家进行结算 $sql = "select sum(totalMoney+deliverMoney) settlementMoney,sum(poundageMoney) poundageMoney from __PREFIX__orders where left(receiveTime,7)='".$lastMonth."' and orderStatus=4 and settlementId=0 and orderFlag=1 and shopId=".$v['shopId']; $totalRs = $this->queryRow($sql); if((float)$totalRs['settlementMoney']==0)continue; $data = array(); $data['settlementType'] = 0; $data['shopId'] = $v['shopId']; $data['accName'] = $accRs['bankName']; $data['accNo'] = $accRs['bankNo']; $data['accUser'] = $accRs['bankUserName']; $data['createTime'] = date('Y-m-d H:i:s'); $data['orderMoney'] = $totalRs['realTotalMoney']; $data['settlementMoney'] = $totalRs['settlementMoney']-$totalRs['poundageMoney']; $data['poundageMoney'] = $totalRs['poundageMoney']; $data['isFinish'] = 0; $settlementId = $m->add($data); if(false !== $settlementId){ //修改结算单号 $sql = "update __PREFIX__order_settlements set settlementNo='".date('y').sprintf("%08d", $settlementId)."' where settlementId=".$settlementId; $this->execute($sql); //修改订单ID的结算ID $sql = "update __PREFIX__orders set settlementId=".$settlementId." where left(receiveTime,7)='".$lastMonth."' and orderStatus=4 and settlementId=0 and orderFlag=1 and shopId=".$v['shopId']; $this->execute($sql); } } } } }; ?>